【tfsec】拡張機能で「より身近」にセキュリティスキャンやってみた
こんにちは!AWS事業本部コンサルティング部のたかくに(@takakuni_)です。
今回は、Visual Studio Codeの拡張機能で、**「より身近」**にtfsecを体験してみようと思います。
tfsecの基本的な使い方は、以下ブログをご参照ください。
結論
- 「ローカル」と「身近」を掛けただけです
- 「ローカルはVS Code、CICDパイプランはCLI」のパターンがオススメ
- 回避コードの追記がとても便利!
- VS Code以外の拡張機能の実装も期待
やってみた
事前準備
VPC周りとセキュリティグループを作成するコードを使用します。
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
version = "3.12.0"
# insert the 23 required variables here
cidr = "10.0.0.0/16"
name = "terraform-reintroduction"
public_subnets = ["10.0.0.0/24", "10.0.1.0/24"]
azs = ["ap-northeast-1a", "ap-northeast-1c"]
}
resource "aws_security_group" "allow_tls" {
name = "allow_tls"
description = "Allow TLS inbound traffic"
vpc_id = module.vpc.vpc_id
ingress {
description = "TLS from VPC"
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = [module.vpc.vpc_cidr_block]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
}
tags = {
Name = "allow_tls"
}
}
インストール
まずは、VS Codeの拡張機能をインストールします。
スキャンしたいフォルダを開きます。
tfsecのサイドバーから「Run tfsec now」をクリックすれば、スキャンが開始されます。
構成要素
大きく分けて、「Findings Explorer」と「Findings Help」の2つで構成されています。
Findings Explorerとは
Findings Explorerでは、「重要度」、「ルール」、「どの部分」が参照できます。
とくに、「どの部分」が的確にわかる点、魅力的ですね。
Findings Help
Findings Helpでは、「是正方法」が書いてあります。
GUIで、一元的に可視化できるのは大変便利だと思います。
検知回避の便利さ
検知されたルールは、「#tfsec:ignore:ルール名」をコメント追加することで、検知を回避されます。
ルール回避は、右クリックで簡単に、コメント追加できます。
また、検知回避の範囲を右クリックの場所でコントロールできます。
たとえば、「aws-vpc-no-public-egress-sgr」を回避するには、ルールを右クリックし、「Ignore All Instances」をクリックします。
インバウンドのみでセキュリティグループを管理するケースもあるので、非常に便利だと思いました。
まとめ
今回は、拡張機能でより身近に、tfsecを体験してみました。
コード修正毎に、CLIで実行は大変なので、積極的に使ってみようと思います。
以上、AWS事業本部コンサルティング部のたかくに(@takakuni_)でした!